package com.zh.netty.nio;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

/**
 *  客户端
 *  * 编写一个NIO入门案例，实现服务器端和客户端之间的数据简单通讯（非阻塞）
 */
public class NIOClient1 {

    public static void main(String[] args) throws IOException {
        // 得到一个网络通道
        SocketChannel socketChannel = SocketChannel.open();

        // 设置非阻塞
        socketChannel.configureBlocking(false);

        // 提供服务器端的ip ,和端口
        InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 6666);

        // 连接服务器
        if (!socketChannel.connect(inetSocketAddress)){

            while (!socketChannel.finishConnect()){
                System.out.println("因为连接需要事件，客户端不会阻塞，可以做其他工作");
            }
        }

        // 连接成功，就发送数据
        String str = "hello,netty!";

        // ByteBuffer.wrap(str.getBytes()): 根据参数字节数组的大小，就是创建buffer的大小,并将参数放入到buffer
        ByteBuffer buffer = ByteBuffer.wrap(str.getBytes());

        // 发送数据，将buffer数据写入channel
        socketChannel.write(buffer);

        System.in.read();
    }
}
